c++ yarn learn java programming knit cosmology programmer software development java knitting c programming cgi html .net php development scott wang embroidery software engineer software string theory crochet software engineer in canada thread physics fabric sewing j2ee general relativity